furny.swing.admin.genotype
Class GenotypePanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by furny.swing.admin.genotype.GenotypePanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ChangeListener

public class GenotypePanel
extends javax.swing.JPanel
implements javax.swing.event.ChangeListener

This is a panel that allows to display, create, manipulate, load and save a genotype and corresponding phenotype.

Since:
12.08.2012
Author:
Stephan Dreyer
See Also:
Serialized Form

Nested Class Summary
private  class GenotypePanel.ActionCreateRandomGenotype
          Action to create a random genotype.
private  class GenotypePanel.ActionLoadGenotype
          Action to load genotypes from a file.
private  class GenotypePanel.ActionSaveGenotype
          Action to save a genotype to a file.
private  class GenotypePanel.ActionUpdateView
          Action to update the view/phenotype.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  com.jme3.app.SimpleApplication app
           
private  java.awt.Canvas canvas
           
private  GAContext context
           
private  javax.swing.JTextArea genotypeField
           
private  FurnLayoutIndividual ind
           
private  boolean initialized
           
private  java.io.File lastDir
           
private  javax.swing.JSpinner lengthSpinner
           
private  int maxCount
           
private  javax.swing.JSpinner maxCountSpinner
           
private  int minCount
           
private  javax.swing.JSpinner minCountSpinner
           
private  FurnLayoutPhenotypeGenerator phenotypeGenerator
           
private  int roomLength
           
private  int roomWidth
           
private  com.jme3.system.AppSettings settings
           
private  ShowRoom showRoom
           
private  boolean showRoomNeedsUpdate
           
private  ShowRoomState<FurnLayoutIndividual> srState
           
private  javax.swing.Timer timer
           
private  RuleValidator<FurnLayoutIndividual> validator
           
private  javax.swing.JSpinner widthSpinner
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
GenotypePanel()
          Instantiates a new genotype panel.
 
Method Summary
private  void checkInit()
          Checks if required components have been initialized.
private  javax.swing.JPanel createCountPanel()
          Creates the min max count panel.
private  javax.swing.JPanel createGenotypePanel()
          Creates the genotype panel.
private  void randomizeInd()
          Randomizes the individual.
 void stateChanged(javax.swing.event.ChangeEvent e)
           
private  void updateGenotypeField()
          Updates the genotype text field.
private  void updateShowroom()
          Updates the showroom size.
private  void updateView()
          Updates the displayed phenotype.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

canvas

private java.awt.Canvas canvas

app

private com.jme3.app.SimpleApplication app

settings

private final com.jme3.system.AppSettings settings

srState

private ShowRoomState<FurnLayoutIndividual> srState

phenotypeGenerator

private final FurnLayoutPhenotypeGenerator phenotypeGenerator

validator

private RuleValidator<FurnLayoutIndividual> validator

showRoom

private ShowRoom showRoom

initialized

private boolean initialized

showRoomNeedsUpdate

private boolean showRoomNeedsUpdate

genotypeField

private javax.swing.JTextArea genotypeField

widthSpinner

private javax.swing.JSpinner widthSpinner

lengthSpinner

private javax.swing.JSpinner lengthSpinner

minCountSpinner

private javax.swing.JSpinner minCountSpinner

maxCountSpinner

private javax.swing.JSpinner maxCountSpinner

roomWidth

private int roomWidth

roomLength

private int roomLength

minCount

private int minCount

maxCount

private int maxCount

context

private final GAContext context

ind

private final FurnLayoutIndividual ind

timer

private javax.swing.Timer timer

lastDir

private final java.io.File lastDir
Constructor Detail

GenotypePanel

public GenotypePanel()
Instantiates a new genotype panel.

Since:
12.08.2012
Method Detail

stateChanged

public void stateChanged(javax.swing.event.ChangeEvent e)
Specified by:
stateChanged in interface javax.swing.event.ChangeListener

checkInit

private void checkInit()
Checks if required components have been initialized.

Since:
12.08.2012

createCountPanel

private javax.swing.JPanel createCountPanel()
Creates the min max count panel.

Returns:
the new panel
Since:
12.08.2012

createGenotypePanel

private javax.swing.JPanel createGenotypePanel()
Creates the genotype panel.

Returns:
the new panel
Since:
12.08.2012

updateGenotypeField

private void updateGenotypeField()
Updates the genotype text field.

Since:
12.08.2012

updateShowroom

private void updateShowroom()
Updates the showroom size.

Since:
12.08.2012

updateView

private void updateView()
Updates the displayed phenotype.

Since:
12.08.2012

randomizeInd

private void randomizeInd()
Randomizes the individual.

Since:
12.08.2012